package service;

public class ValidateRecipeKomponent 
{
	private String error = "";

	public boolean validate(String nr, String nonNetto,String tolerance)
	{
		error = "";
		validateNr(nr);
		validateNonNetto(nonNetto);
		validateTolerance(tolerance);

		//Tjekker om validerignen har fejlet
		return (error.isEmpty());
	}

	//####################### RECEPT NR VALIDERING #######################
	private void validateNr(String nr)
	{
		if (!nr.matches("[0-9]+")) 
		{
			if (nr.isEmpty()) 
			{
				error = error + "<li>Indtast råvarenummer</li>";
			} 
			else 
			{
				error = error + "<li>Råvarenummer skal være et tal</li>";
			}
		}
	}

	//###################### RECEPT NAVN VALIDERING #####################
	private void validateNonNetto(String nonNetto)
	{
		try{
			if (Double.parseDouble(nonNetto) < 0.05 || Double.parseDouble(nonNetto) > 20.0)
			{
				if (nonNetto.isEmpty()) 
				{
					error = error + "<li>Indtast nominel netto vægt</li>";
				}
				else
				{
					error = error + "<li>Den nominelle netto vægt skal være mellem 0,05-20,0 kg</li>";
				}
			}
		}catch(NumberFormatException e){
			error = error + "<li>Den nominelle netto vægt skal være mellem 0,05-20,0 kg</li>";
		}
	}

	private void validateTolerance(String tolerance)
	{
		try{
			if (Double.parseDouble(tolerance) < 0.1 || Double.parseDouble(tolerance) > 10.0)
			{
				if (tolerance.isEmpty()) 
				{
					error = error + "<li>Indtast tolerance</li>";
				}
				else
				{
					error = error + "<li>Tolerance skal ligge mellem 0,1 til 10,0%</li>";
				}
			}

		}catch(NumberFormatException e){
			error = error + "<li>Tolerance skal ligge mellem 0,1 til 10,0%</li>";
		}
	}


	public ErrorService createError(){
		ErrorService errorMessage = new ErrorService();
		return errorMessage;
	}

	public String getError(){
		return error;
	}

	public void setError(String error)
	{
		this.error = error;
	}
}
